package registnet.base.student;

import registnet.base.AbstractPerson;
import registnet.base.Classification;
import registnet.base.IChecklist;
import registnet.base.ICurriculum;
import registnet.base.IPlanOfCourseWork;
import registnet.base.ITranscript;
import registnet.base.Priority;
import registnet.base.Standing;

/**
 * This class provides default implementations for the <code>IStudent</code> interface.
 */
public abstract class AbstractStudent extends AbstractPerson implements IStudent {

	/**
	 * The student number of the student
	 */
	protected String studentNumber;
	
	/**
	 * The code of the college of the student
	 */
	protected String collegeCode;
	
	/**
	 * The degree program of the student
	 */
	protected String degreeProgram;
	
	/**
	 * The status of the student
	 */
	protected int status;
	
	/**
	 * The standing of the student
	 */
	protected Standing standing;
	
	/**
	 * The classification of the student
	 */
	protected Classification classification;
	
	/**
	 * The priority of the student
	 */
	protected Priority priority;
	
	/**
	 * The checklist of the student
	 */
	protected IChecklist checklist;
	
	
	@Override
	public String getStudentNumber() {
		return studentNumber;
	}

	@Override
	public void setStudentNumber(String studentNumber) {
		this.studentNumber = studentNumber;
	}
	
	@Override
	public String getCollegeCode() {
		return collegeCode;
	}

	@Override
	public void setCollegeCode(String collegeCode) {
		this.collegeCode = collegeCode;
	}

	@Override
	public String getDegreeProgram() {
		return degreeProgram;
	}

	@Override
	public void setDegreeProgram(String degreeProgram) {
		this.degreeProgram = degreeProgram;
	}

	@Override
	public int getStatus() {
		return status;
	}

	@Override
	public void setStatus(int status) {
		this.status = status;
	}

	@Override
	public Classification getClassification() {
		return classification;
	}

	@Override
	public Priority getPriority() {
		return priority;
	}

	@Override
	public Standing getStanding() {
		return standing;
	}

	@Override
	public void setClassification(Classification classification) {
		this.classification = classification;
	}

	@Override
	public void setPriority(Priority priority) {
		this.priority = priority;
	}

	@Override
	public void setStanding(Standing standing) {
		this.standing = standing;
	}

	@Override
	public ICurriculum getCurriculum() {
		return checklist.getCurriculum();
	}

	@Override
	public IPlanOfCourseWork getPlanOfCourseWork() {
		return checklist.getPlanOfCourseWork();
	}

	@Override
	public ITranscript getTranscript() {
		return checklist.getTranscript();
	}

	@Override
	public IChecklist getChecklist() {
		return checklist;
	}

	@Override
	public void setChecklist(IChecklist checklist) {
		this.checklist = checklist;
	}
	
}
